package com.jeesite.modules.task.action.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.BaseEntity;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.modules.task.deploy.entity.DcSupTaskInfo;

import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * 任务部署分发表Entity
 * @author zrr
 * @version 2022-03-03
 */
@Table(name="dc_sup_task_action", alias="a", label="任务部署分发表信息", columns={
		@Column(name="id", attrName="id", label="主键", isPK=true),
		@Column(name="task_id", attrName="taskId", label="任务id"),
		@Column(name="leader_org_code", attrName="leaderOrgCode", label="牵头责任单位编号"),
		@Column(name="leader_org_name", attrName="leaderOrgName", label="牵头责任单位名称", queryType=QueryType.LIKE),
		@Column(name="transfer_flag", attrName="transferFlag", label="是否转发"),
		@Column(name="transfer_org_code", attrName="transferOrgCode", label="转发单位编号"),
		@Column(name="transfer_org_name", attrName="transferOrgName", label="转发单位名称", queryType=QueryType.LIKE),
		@Column(name="explain_flag", attrName="explainFlag", label="是否批示"),
		@Column(name="explain_content", attrName="explainContent", label="领导批示"),
		@Column(name="task_status", attrName="taskStatus", label="任务状态", comment="任务状态（0删除、1待接收、2进行中、3已结束）"),
		@Column(name="task_progress", attrName="taskProgress", label="任务完成进度", comment="任务完成进度（1进度滞后、2逾期反馈、3序时推进、4已完成）"),
		@Column(name="create_by", attrName="createBy", label="创建人", isUpdate=false, isQuery=false),
		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false, isUpdateForce=true),
		@Column(name="update_by", attrName="updateBy", label="更新人", isQuery=false),
		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false, isUpdateForce=true),
		@Column(name="remarks", attrName="remarks", label="备注", queryType=QueryType.LIKE),
		@Column(includeEntity=BaseEntity.class),
		@Column(name="remarks1", attrName="remarks1", label="备用字段1", queryType=QueryType.LIKE, isUpdateForce=true),
		@Column(name="remarks2", attrName="remarks2", label="备用字段2", queryType=QueryType.LIKE),
		@Column(name="remarks3", attrName="remarks3", label="备用字段3", queryType=QueryType.LIKE),
		@Column(name="remarks4", attrName="remarks4", label="备用字段4", queryType=QueryType.LIKE),
		@Column(name="explain_code", attrName="explainCode", label="领导编码"),
		@Column(name="explain_name", attrName="explainName", label="领导姓名"),
		@Column(name="explain_time", attrName="explainTime", label="领导批示时间", queryType=QueryType.LIKE),
	}, orderBy="a.update_date DESC"
)
public class DcSupTaskActionDto extends DataEntity<DcSupTaskActionDto> {

	private static final long serialVersionUID = 1L;
	/**
	 * 主键
	 */
	private String id;
	 /**
	 * 任务id
	 */
	private String taskId;
	 /**
	 * 牵头责任单位编号
	 */
	private String leaderOrgCode;
	 /**
	 * 牵头责任单位名称
	 */
	private String leaderOrgName;
	 /**
	 * 是否转发
	 */
	private String transferFlag;
	 /**
	 * 转发单位编号
	 */
	private String transferOrgCode;
	 /**
	 * 转发单位名称
	 */
	private String transferOrgName;
	 /**
	 * 是否批示
	 */
	private String explainFlag;
	 /**
	 * 领导批示
	 */
	private String explainContent;
	 /**
	 * 任务状态（0删除、1待接收、2进行中、3已结束）
	 */
	private String taskStatus;
	 /**
	 * 任务完成进度（1进度滞后、2逾期反馈、3序时推进、4已完成）
	 */
	private String taskProgress;
	 /**
	 * 备用字段1
	 */
	private Long remarks1;
	 /**
	 * 备用字段2
	 */
	private String remarks2;
	 /**
	 * 备用字段3
	 */
	private String remarks3;
	 /**
	 * 备用字段4
	 */
	private String remarks4;

	//添加字段----------------------------------------------------------------------------------------
	/**
	 * 任务标题
	 */
	private String taskTitle;

	/**
	 * 任务内容
	 */
	private String taskContent;

	/**
	 * 督办单位(单选)
	 */
	private String taskSupOrg;

	/**
	 * 督办单位(单选)
	 */
	private String taskSupOrgName;

	/**
	 * 领导编码
	 */
	private String explainCode;

	/**
	 * 领导姓名
 	 */
	private String explainName;

	/**
	 * 领导批示时间
	 */
	private Date explainTime;

	/**
	 * 牵头责任单位名称（多选，逗号分隔）
	 */
	private String taskLeaderOrgName;

	/**
	 * 任务详情
	 */
	private DcSupTaskInfo dcSupTaskInfo;

	/**
	 * 任务年度集合
	 * @return
	 */
	private List<String> yearList;

	/**
	 * 任务年度
	 * @return
	 */
	private String taskYear;

	/**
	 * 任务类型
	 * @return
	 */
	private String taskTypeCode;

	/**
	 * 任务类型
	 * @return
	 */
	private String taskTypeName;


	/**
	 * 督办人
	 * @return
	 */
	private String contactName;

	/**
	 * 牵头领导姓名
	 * @return
	 */
	private String taskLeaderName;

	/**
	 * 督办单位
	 */
	private String messageNumber;
	private Date feedbackTime;
	private Date feedbackStartTime;
	private Date feedbackEndTime;
	private String taskLeader;
	private String createTaskDate;
	private String startTime;

	public String getStartTime() {
		return startTime;
	}

	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}

	public String getEndTime() {
		return endTime;
	}

	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}

	private String endTime;

	public String getCreateTaskDate() {
		return createTaskDate;
	}

	public void setCreateTaskDate(String createTaskDate) {
		this.createTaskDate = createTaskDate;
	}

	public String getTaskLeader() {
		return taskLeader;
	}

	public void setTaskLeader(String taskLeader) {
		this.taskLeader = taskLeader;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
	public Date getFeedbackTime() {
		return feedbackTime;
	}

	public void setFeedbackTime(Date feedbackTime) {
		this.feedbackTime = feedbackTime;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
	public Date getFeedbackStartTime() {
		return feedbackStartTime;
	}

	public void setFeedbackStartTime(Date feedbackStartTime) {
		this.feedbackStartTime = feedbackStartTime;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
	public Date getFeedbackEndTime() {
		return feedbackEndTime;
	}

	public void setFeedbackEndTime(Date feedbackEndTime) {
		this.feedbackEndTime = feedbackEndTime;
	}

	public String getTaskLeaderName() {
		return taskLeaderName;
	}

	public void setTaskLeaderName(String taskLeaderName) {
		this.taskLeaderName = taskLeaderName;
	}

	public String getTaskYear() {
		return taskYear;
	}

	public void setTaskYear(String taskYear) {
		this.taskYear = taskYear;
	}

	public String getContactName() {
		return contactName;
	}

	public void setContactName(String contactName) {
		this.contactName = contactName;
	}

	public List<String> getYearList() {
		return yearList;
	}

	public void setYearList(List<String> yearList) {
		this.yearList = yearList;
	}

	public String getTaskLeaderOrgName() {
		return taskLeaderOrgName;
	}

	public void setTaskLeaderOrgName(String taskLeaderOrgName) {
		this.taskLeaderOrgName = taskLeaderOrgName;
	}

	public DcSupTaskInfo getDcSupTaskInfo() {
		return dcSupTaskInfo;
	}

	public void setDcSupTaskInfo(DcSupTaskInfo dcSupTaskInfo) {
		this.dcSupTaskInfo = dcSupTaskInfo;
	}

	public String getTaskTitle() {
		return taskTitle;
	}

	public void setTaskTitle(String taskTitle) {
		this.taskTitle = taskTitle;
	}

	public String getTaskContent() {
		return taskContent;
	}

	public void setTaskContent(String taskContent) {
		this.taskContent = taskContent;
	}

	public String getTaskSupOrg() {
		return taskSupOrg;
	}

	public void setTaskSupOrg(String taskSupOrg) {
		this.taskSupOrg = taskSupOrg;
	}

	public String getTaskSupOrgName() {
		return taskSupOrgName;
	}

	public void setTaskSupOrgName(String taskSupOrgName) {
		this.taskSupOrgName = taskSupOrgName;
	}

	public String getExplainCode() {
		return explainCode;
	}

	public void setExplainCode(String explainCode) {
		this.explainCode = explainCode;
	}

	public String getExplainName() {
		return explainName;
	}

	public void setExplainName(String explainName) {
		this.explainName = explainName;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd")
	public Date getExplainTime() {
		return explainTime;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd")
	public void setExplainTime(Date explainTime) {
		this.explainTime = explainTime;
	}

	public DcSupTaskActionDto() {
		this(null);
	}

	public DcSupTaskActionDto(String id){
		super(id);
	}

	@Size(min=0, max=64, message="任务id长度不能超过 64 个字符")
	public String getTaskId() {
		return taskId;
	}

	public void setTaskId(String taskId) {
		this.taskId = taskId;
	}

	@Size(min=0, max=100, message="牵头责任单位编号长度不能超过 100 个字符")
	public String getLeaderOrgCode() {
		return leaderOrgCode;
	}

	public void setLeaderOrgCode(String leaderOrgCode) {
		this.leaderOrgCode = leaderOrgCode;
	}

	@Size(min=0, max=100, message="牵头责任单位名称长度不能超过 100 个字符")
	public String getLeaderOrgName() {
		return leaderOrgName;
	}

	public void setLeaderOrgName(String leaderOrgName) {
		this.leaderOrgName = leaderOrgName;
	}

	@Size(min=0, max=10, message="是否转发长度不能超过 10 个字符")
	public String getTransferFlag() {
		return transferFlag;
	}

	public void setTransferFlag(String transferFlag) {
		this.transferFlag = transferFlag;
	}

	@Size(min=0, max=100, message="转发单位编号长度不能超过 100 个字符")
	public String getTransferOrgCode() {
		return transferOrgCode;
	}

	public void setTransferOrgCode(String transferOrgCode) {
		this.transferOrgCode = transferOrgCode;
	}

	@Size(min=0, max=100, message="转发单位名称长度不能超过 100 个字符")
	public String getTransferOrgName() {
		return transferOrgName;
	}

	public void setTransferOrgName(String transferOrgName) {
		this.transferOrgName = transferOrgName;
	}

	@Size(min=0, max=10, message="是否批示长度不能超过 10 个字符")
	public String getExplainFlag() {
		return explainFlag;
	}

	public void setExplainFlag(String explainFlag) {
		this.explainFlag = explainFlag;
	}

	public String getExplainContent() {
		return explainContent;
	}

	public void setExplainContent(String explainContent) {
		this.explainContent = explainContent;
	}

	@Size(min=0, max=10, message="任务状态长度不能超过 10 个字符")
	public String getTaskStatus() {
		return taskStatus;
	}

	public void setTaskStatus(String taskStatus) {
		this.taskStatus = taskStatus;
	}

	@Size(min=0, max=10, message="任务完成进度长度不能超过 10 个字符")
	public String getTaskProgress() {
		return taskProgress;
	}

	public void setTaskProgress(String taskProgress) {
		this.taskProgress = taskProgress;
	}

	public Long getRemarks1() {
		return remarks1;
	}

	public void setRemarks1(Long remarks1) {
		this.remarks1 = remarks1;
	}

	@Size(min=0, max=200, message="备用字段2长度不能超过 200 个字符")
	public String getRemarks2() {
		return remarks2;
	}

	public void setRemarks2(String remarks2) {
		this.remarks2 = remarks2;
	}

	@Size(min=0, max=200, message="备用字段3长度不能超过 200 个字符")
	public String getRemarks3() {
		return remarks3;
	}

	public void setRemarks3(String remarks3) {
		this.remarks3 = remarks3;
	}

	@Size(min=0, max=200, message="备用字段4长度不能超过 200 个字符")
	public String getRemarks4() {
		return remarks4;
	}

	public void setRemarks4(String remarks4) {
		this.remarks4 = remarks4;
	}

	@Override
	public String getId() {
		return id;
	}

	@Override
	public void setId(String id) {
		this.id = id;
	}

	public String getTaskTypeCode() {
		return taskTypeCode;
	}

	public void setTaskTypeCode(String taskTypeCode) {
		this.taskTypeCode = taskTypeCode;
	}

	public String getMessageNumber() {
		return messageNumber;
	}

	public void setMessageNumber(String messageNumber) {
		this.messageNumber = messageNumber;
	}

	public String getTaskTypeName() {
		return taskTypeName;
	}

	public void setTaskTypeName(String taskTypeName) {
		this.taskTypeName = taskTypeName;
	}
}